title: Git Log
date: 2013-01-07 10:51:37
categories:


Git log

git log --merges --after="2022-10-13" --oneline --decorate
git log --after="2022-10-13" --oneline --decorate

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative --all --after '10-13-2022' --merges

查看历史版本记录–指定显示条数

同时,与git log相同的是,git reflog也提供了控制显示条数的选项:

命令:git reflog -n

1、获取本分支合入指定分支的commitId

有些时候需要解析分支,tag,或者其他对于提交的间接引用。对于这种情况,你可以使用git rev-parse命令。下面的命令返回指向development分支的提交哈希串。

git rev-parse development

这对于编写只接受提交ID作为参数的自定义脚本非常有用。你可以使用git rev-parse命令来标准化脚本的输入,进而进入对于提交的统一处理。这就避免了脚本用户需要手动解析提交的引用。

二、获取commitId的信息

1、获取commitId的提交信息

想要将此哈希串作为参数传递给其他Git命令,只需要提供足够长度的字符串就可以了。比如说,你可以通过下面的命令来传入上面的哈希串,以便使用git show命令查看那次提交的具体内容。

git show 0c708f

git show -s --oneline 3d21461a7ef205ed0cee0baf45e95e782f4e84af

2、获取commitId的根源远程分支

①、获取有哪些远程分支里已经合入了commitId

git branch --contains eb0633b76925041f84b592a2e261e0b8537953f7 -r # -r标识远程分支

②、第一个合入commitId的远程分支,即为commitId的根源分支

branchResultForFisrtCommit=$(git branch --contains "${firstCommitId}" -r)
echo "${branchResultForFisrtCommit}"

branchArrayForFisrtCommit=(${branchResultForFisrtCommit})
branchCountForFisrtCommit=${#branchArrayForFisrtCommit[@]}
#echo "branchCountForFisrtCommit=$branchCountForFisrtCommit"
#for ((i=0;i<branchCountForFisrtCommit;i+=1))
#{
#    branchName=${branchArrayForFisrtCommit[i]}
#    echo "branchName=${branchName}"
#}

echo "\n------下面开始获取firstCommitId:${firstCommitId}的提交所属的根源远程功能分支名------"
sourceBranchForFisrtCommit=${branchArrayForFisrtCommit[${branchCountForFisrtCommit}-1]}
echo "sourceBranchForFisrtCommit=${sourceBranchForFisrtCommit}"